package org.dxy.infrastructure.persistent.po;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @description: 单位管理实体
 * @author: dxy
 * @createTime: 2025/1/21
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("unit_manage")
public class UnitManagePo {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 单位编码
     */
    @TableField("unit_code")
    private String unitCode;

    /**
     * 单位名称
     */
    @TableField("unit_name")
    private String unitName;

    /**
     * 单位符号
     */
    @TableField("unit_symbol")
    private String unitSymbol;

    /**
     * 单位类型（长度、重量、面积、体积、数量等）
     */
    @TableField("unit_type")
    private String unitType;

    /**
     * 是否为基础单位（0-否，1-是）
     */
    @TableField("is_base_unit")
    private Integer isBaseUnit;

    /**
     * 换算系数（相对于基本单位）
     */
    @TableField("conversion_factor")
    private BigDecimal conversionFactor;

    /**
     * 基本单位ID（用于单位换算）
     */
    @TableField("base_unit_id")
    private Long baseUnitId;

    /**
     * 描述
     */
    @TableField("description")
    private String description;

    /**
     * 状态（0-禁用，1-启用）
     */
    @TableField("status")
    private Integer status;

    /** 创建人 */
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /** 更新人 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    /** 逻辑删除标识 0-未删除 1-已删除 */
    @TableLogic
    private Integer deleted;
}